type Trans<T> = T

interface T1 {
    a: string
}

interface T2 {
    a: string
    b: number
}

// Trans 不会立即求值，保留 keyof T2 这个操作数(惰性求值, 没有被求值, 直接返回)
type X1 = Trans<keyof T2>
type X2 = T1 & T2
type X3 = Trans<T1 & T2>

// 表达式类型可以作为操作数参与运算, 如 T1 & T2
type X4 = Omit<T1 & T2, any>


